Electronic devices, such as mobile phones and personal digital assistants (PDA's), often contain firmware and application software that are either provided by the manufacturers of the electronic devices, by telecommunication carriers, or by third parties. These firmware and application software often contain software bugs. New versions of the firmware and software are periodically released to fix the bugs or to introduce new features, or both.
Update of firmware or software is often one-way, with no means to rollback to a previous version. Different flash memory technologies have different read, write, and erase characteristics. It is therefore very difficult to update code in flash memories. Update software, such as agents, is often complicated. Some of the techniques are flash technology specific. Mobile devices are constrained devices and it is not currently possible to ensure rollback to previous versions of firmware or software. Update technologies therefore must be fool-proof and must not corrupt the devices being updated.
Mobile devices that contain NAND memory have special characteristics. Updating NAND memory devices using technology designed for previous NOR memory devices is not appropriate and is often inefficient. In addition, the behavior of NAND memory often is different from NOR memory, and code developed to manipulate NOR memory units will not work on NAND memory units.
Some mobile devices involve more than one processor, making the update of these devices very complex. In general, NAND memory in electronic device is less reliable than NOR. In fact, it is expected that some blocks will be bad when the device is manufactured. Thus, the potential for bad blocks cannot usually be ignored. This adds complexity to firmware update solutions for NAND memory.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.